package modeloDAO;
import java.sql.ResultSet;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import modeloDTO.Record;


public class RecordDAO {

	public void registrarRecord(Record record){
		String tiraSQL = "INSERT INTO record "+"(codigorecord,codigojugador,codigonivel,tiempo, fecha) "+
		"VALUES "+
		"('"+record.getCodigoRecord()+"','"+record.getCodigoJugador()+"','"+record.getCodigoNivel()+"','"+record.getTiempo()+"','"+record.getFecha()+"')";
		Conexion.ejecutar(tiraSQL);
	}

	public String consultarUltimoCodigoRecord(){  
		String codigorecord = "";
		int mayor = 0;
		String tiraSQL = "SELECT * From record ORDER BY codigorecord";
		ResultSet resultSet = Conexion.consultar(tiraSQL);
		try {
			while (resultSet.next()) {
				//if(resultSet.isLast())
					codigorecord = resultSet.getString("codigorecord");
					if(mayor < Integer.valueOf(codigorecord))
						mayor = Integer.valueOf(codigorecord);
			}
			if(codigorecord == null){
				codigorecord = "0";
			}
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		return String.valueOf(mayor);
	}

	public List<Record> consultarPuntuaciones(String codigonivel) {
		int contadorRecords = 1;
		List<Record> puntuaciones = new ArrayList<Record>();
		String tiraSQL = "SELECT * FROM record where codigonivel ='"+codigonivel+"' order by tiempo";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next() && contadorRecords<=5) {
				contadorRecords++;
				String codigorecord = resultSet.getString("codigorecord");
				String codigojugador = resultSet.getString("codigojugador");
				int tiempo = resultSet.getInt("tiempo");
				String fecha = resultSet.getString("fecha");
				Record puntuacion = new Record(codigorecord, codigojugador, codigonivel, tiempo,fecha);
				puntuaciones.add(puntuacion);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return puntuaciones;
	}

}
